home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / X11 / extensions / XKBsrv.h < prev    next >
C/C++ Source or Header  |  2006-04-12  |  27KB  |  1,150 lines

  1. /* $Xorg: XKBsrv.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */
  2. /************************************************************
  3. Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
  4.  
  5. Permission to use, copy, modify, and distribute this
  6. software and its documentation for any purpose and without
  7. fee is hereby granted, provided that the above copyright
  8. notice appear in all copies and that both that copyright
  9. notice and this permission notice appear in supporting
  10. documentation, and that the name of Silicon Graphics not be 
  11. used in advertising or publicity pertaining to distribution 
  12. of the software without specific prior written permission.
  13. Silicon Graphics makes no representation about the suitability 
  14. of this software for any purpose. It is provided "as is"
  15. without any express or implied warranty.
  16.  
  17. SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS 
  18. SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 
  19. AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
  20. GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL 
  21. DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 
  22. DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 
  23. OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
  24. THE USE OR PERFORMANCE OF THIS SOFTWARE.
  25.  
  26. ********************************************************/
  27. /* $XFree86: xc/include/extensions/XKBsrv.h,v 3.22 2002/11/20 04:49:01 dawes Exp $ */
  28.  
  29. #ifndef _XKBSRV_H_
  30. #define    _XKBSRV_H_
  31.  
  32. #ifdef XKB_IN_SERVER
  33. #define XkbAllocClientMap        SrvXkbAllocClientMap
  34. #define XkbAllocServerMap        SrvXkbAllocServerMap
  35. #define XkbChangeTypesOfKey        SrvXkbChangeTypesOfKey
  36. #define    XkbAddKeyType            SrvXkbAddKeyType
  37. #define XkbCopyKeyType            SrvXkbCopyKeyType
  38. #define XkbCopyKeyTypes            SrvXkbCopyKeyTypes
  39. #define XkbFreeClientMap        SrvXkbFreeClientMap
  40. #define XkbFreeServerMap        SrvXkbFreeServerMap
  41. #define XkbInitCanonicalKeyTypes    SrvXkbInitCanonicalKeyTypes
  42. #define    XkbKeyTypesForCoreSymbols    SrvXkbKeyTypesForCoreSymbols
  43. #define    XkbApplyCompatMapToKey        SrvXkbApplyCompatMapToKey
  44. #define    XkbUpdateMapFromCore        SrvXkbUpdateMapFromCore
  45. #define XkbResizeKeyActions        SrvXkbResizeKeyActions
  46. #define XkbResizeKeySyms        SrvXkbResizeKeySyms
  47. #define XkbResizeKeyType        SrvXkbResizeKeyType
  48. #define XkbAllocCompatMap        SrvXkbAllocCompatMap
  49. #define XkbAllocControls        SrvXkbAllocControls
  50. #define XkbAllocIndicatorMaps        SrvXkbAllocIndicatorMaps
  51. #define XkbAllocKeyboard        SrvXkbAllocKeyboard
  52. #define XkbAllocNames            SrvXkbAllocNames
  53. #define XkbFreeCompatMap        SrvXkbFreeCompatMap
  54. #define XkbFreeControls            SrvXkbFreeControls
  55. #define XkbFreeIndicatorMaps        SrvXkbFreeIndicatorMaps
  56. #define XkbFreeKeyboard            SrvXkbFreeKeyboard
  57. #define XkbFreeNames            SrvXkbFreeNames
  58. #define    XkbAddDeviceLedInfo        SrvXkbAddDeviceLedInfo
  59. #define    XkbAllocDeviceInfo        SrvXkbAllocDeviceInfo
  60. #define    XkbFreeDeviceInfo        SrvXkbFreeDeviceInfo
  61. #define    XkbResizeDeviceButtonActions    SrvXkbResizeDeviceButtonActions
  62. #define XkbLatchModifiers        SrvXkbLatchModifiers
  63. #define XkbLatchGroup            SrvXkbLatchGroup
  64. #define XkbVirtualModsToReal        SrvXkbVirtualModsToReal
  65. #define    XkbChangeKeycodeRange        SrvXkbChangeKeycodeRange
  66. #define    XkbApplyVirtualModChanges    SrvXkbApplyVirtualModChanges
  67. #define    XkbUpdateActionVirtualMods    SrvXkbUpdateActionVirtualMods
  68. #define XkbUpdateKeyTypeVirtualMods    SrvXkbUpdateKeyTypeVirtualMods
  69. #endif
  70.  
  71. #include <X11/extensions/XKBstr.h>
  72. #include <X11/extensions/XKBproto.h>
  73. #include "inputstr.h"
  74.  
  75. typedef struct _XkbInterest {
  76.     DeviceIntPtr        dev;
  77.     ClientPtr        client;
  78.     XID            resource;
  79.     struct _XkbInterest *    next;
  80.     CARD16            extDevNotifyMask;
  81.     CARD16            stateNotifyMask;
  82.     CARD16            namesNotifyMask;
  83.     CARD32             ctrlsNotifyMask;
  84.     CARD8            compatNotifyMask;
  85.     BOOL            bellNotifyMask;
  86.     BOOL            actionMessageMask;
  87.     CARD16            accessXNotifyMask;
  88.     CARD32            iStateNotifyMask;
  89.     CARD32            iMapNotifyMask;
  90.     CARD16            altSymsNotifyMask;
  91.     CARD32            autoCtrls;
  92.     CARD32            autoCtrlValues;
  93. } XkbInterestRec,*XkbInterestPtr;
  94.  
  95. typedef struct _XkbRadioGroup {
  96.     CARD8        flags;
  97.     CARD8        nMembers;
  98.     CARD8        dfltDown;
  99.     CARD8        currentDown;
  100.     CARD8        members[XkbRGMaxMembers];
  101. } XkbRadioGroupRec, *XkbRadioGroupPtr;
  102.  
  103. typedef struct    _XkbEventCause {
  104.     CARD8        kc;
  105.     CARD8        event;
  106.     CARD8        mjr;
  107.     CARD8        mnr;
  108.     ClientPtr    client;
  109. } XkbEventCauseRec,*XkbEventCausePtr;
  110. #define    XkbSetCauseKey(c,k,e)    { (c)->kc= (k),(c)->event= (e),\
  111.                   (c)->mjr= (c)->mnr= 0; \
  112.                   (c)->client= NULL; }
  113. #define    XkbSetCauseReq(c,j,n,cl) { (c)->kc= (c)->event= 0,\
  114.                   (c)->mjr= (j),(c)->mnr= (n);\
  115.                   (c)->client= (cl); }
  116. #define    XkbSetCauseCoreReq(c,e,cl) XkbSetCauseReq(c,e,0,cl)
  117. #define    XkbSetCauseXkbReq(c,e,cl)  XkbSetCauseReq(c,XkbReqCode,e,cl)
  118. #define    XkbSetCauseUnknown(c)       XkbSetCauseKey(c,0,0)
  119.  
  120. #define    _OFF_TIMER        0
  121. #define    _KRG_WARN_TIMER        1
  122. #define    _KRG_TIMER        2
  123. #define    _SK_TIMEOUT_TIMER    3
  124. #define    _ALL_TIMEOUT_TIMER    4
  125.  
  126. #define    _BEEP_NONE        0
  127. #define    _BEEP_FEATURE_ON    1
  128. #define    _BEEP_FEATURE_OFF    2
  129. #define    _BEEP_FEATURE_CHANGE    3
  130. #define    _BEEP_SLOW_WARN        4
  131. #define    _BEEP_SLOW_PRESS    5
  132. #define    _BEEP_SLOW_ACCEPT    6
  133. #define    _BEEP_SLOW_REJECT    7
  134. #define    _BEEP_SLOW_RELEASE    8
  135. #define    _BEEP_STICKY_LATCH    9
  136. #define    _BEEP_STICKY_LOCK    10
  137. #define    _BEEP_STICKY_UNLOCK    11
  138. #define    _BEEP_LED_ON        12
  139. #define    _BEEP_LED_OFF        13
  140. #define    _BEEP_LED_CHANGE    14
  141. #define    _BEEP_BOUNCE_REJECT    15
  142.  
  143. typedef struct _XkbSrvInfo {
  144.     XkbStateRec     prev_state;
  145.     XkbStateRec     state;
  146.     XkbDescPtr     desc;
  147.  
  148.     DeviceIntPtr     device;
  149.     KbdCtrlProcPtr     kbdProc;
  150.  
  151.     XkbRadioGroupPtr radioGroups;
  152.     CARD8         nRadioGroups;
  153.     CARD8         clearMods;
  154.     CARD8         setMods;
  155.     INT16         groupChange;
  156.  
  157.     CARD16         dfltPtrDelta;
  158.  
  159.     double         mouseKeysCurve;
  160.     double         mouseKeysCurveFactor;
  161.     INT16         mouseKeysDX;
  162.     INT16         mouseKeysDY;
  163.     CARD8         mouseKeysFlags;
  164.     Bool         mouseKeysAccel;
  165.     CARD8         mouseKeysCounter;
  166.  
  167.     CARD8         lockedPtrButtons;
  168.     CARD8         shiftKeyCount;
  169.     KeyCode         mouseKey;
  170.     KeyCode         inactiveKey;
  171.     KeyCode         slowKey;
  172.     KeyCode         repeatKey;
  173.     CARD8         krgTimerActive;
  174.     CARD8         beepType;
  175.     CARD8         beepCount;
  176.  
  177.     CARD32         flags;
  178.     CARD32         lastPtrEventTime;
  179.     CARD32         lastShiftEventTime;
  180.     OsTimerPtr     beepTimer;
  181.     OsTimerPtr     mouseKeyTimer;
  182.     OsTimerPtr     slowKeysTimer;
  183.     OsTimerPtr     bounceKeysTimer;
  184.     OsTimerPtr     repeatKeyTimer;
  185.     OsTimerPtr     krgTimer;
  186. } XkbSrvInfoRec, *XkbSrvInfoPtr;
  187.  
  188. #define    XkbSLI_IsDefault    (1L<<0)
  189. #define    XkbSLI_HasOwnState    (1L<<1)
  190.  
  191. typedef struct    _XkbSrvLedInfo {
  192.     CARD16            flags;
  193.     CARD16            class;
  194.     CARD16            id;
  195.     union {
  196.         KbdFeedbackPtr    kf;
  197.         LedFeedbackPtr    lf;
  198.     }             fb;
  199.  
  200.     CARD32            physIndicators;
  201.     CARD32            autoState;
  202.     CARD32            explicitState;
  203.     CARD32            effectiveState;
  204.  
  205.     CARD32            mapsPresent;
  206.     CARD32            namesPresent;
  207.     XkbIndicatorMapPtr    maps;
  208.     Atom *            names;
  209.  
  210.     CARD32            usesBase;
  211.     CARD32            usesLatched;
  212.     CARD32            usesLocked;
  213.     CARD32            usesEffective;
  214.     CARD32            usesCompat;
  215.     CARD32            usesControls;
  216.  
  217.     CARD32            usedComponents;
  218. } XkbSrvLedInfoRec, *XkbSrvLedInfoPtr;
  219.  
  220. /*
  221.  * Settings for xkbClientFlags field (used by DIX)
  222.  * These flags _must_ not overlap with XkbPCF_*
  223.  */
  224. #define    _XkbClientInitialized        (1<<15)
  225.  
  226. #define    _XkbWantsDetectableAutoRepeat(c)\
  227.     ((c)->xkbClientFlags&XkbPCF_DetectableAutoRepeatMask)
  228.  
  229. /*
  230.  * Settings for flags field
  231.  */
  232. #define    _XkbStateNotifyInProgress    (1<<0)
  233.  
  234. /***====================================================================***/
  235.  
  236. #define XkbAX_KRGMask     (XkbSlowKeysMask|XkbBounceKeysMask)
  237. #define    XkbAllFilteredEventsMask \
  238.     (XkbAccessXKeysMask|XkbRepeatKeysMask|XkbMouseKeysAccelMask|XkbAX_KRGMask)
  239.  
  240. /***====================================================================***/
  241.  
  242. extern int    XkbReqCode;
  243. extern int    XkbEventBase;
  244. extern int    XkbKeyboardErrorCode;
  245. extern int    XkbDisableLockActions;
  246. extern char *    XkbBaseDirectory;
  247. extern char *    XkbInitialMap;
  248. extern int    _XkbClientMajor;
  249. extern int    _XkbClientMinor;
  250. extern unsigned    int XkbXIUnsupported;
  251.  
  252. extern char *    XkbModelUsed,*XkbLayoutUsed,*XkbVariantUsed,*XkbOptionsUsed;
  253. extern Bool    noXkbExtension;
  254. extern Bool    XkbWantRulesProp;
  255.  
  256. extern pointer    XkbLastRepeatEvent;
  257.  
  258. extern CARD32    xkbDebugFlags;
  259. extern CARD32    xkbDebugCtrls;
  260.  
  261. #define    _XkbAlloc(s)        xalloc((s))
  262. #define    _XkbCalloc(n,s)        Xcalloc((n)*(s))
  263. #define    _XkbRealloc(o,s)    Xrealloc((o),(s))
  264. #define    _XkbTypedAlloc(t)    ((t *)xalloc(sizeof(t)))
  265. #define    _XkbTypedCalloc(n,t)    ((t *)Xcalloc((n)*sizeof(t)))
  266. #define    _XkbTypedRealloc(o,n,t) \
  267.     ((o)?(t *)Xrealloc((o),(n)*sizeof(t)):_XkbTypedCalloc(n,t))
  268. #define    _XkbClearElems(a,f,l,t)    bzero(&(a)[f],((l)-(f)+1)*sizeof(t))
  269. #define    _XkbFree(p)        Xfree(p)
  270.  
  271. #define    _XkbLibError(c,l,d) \
  272.     { _XkbErrCode= (c); _XkbErrLocation= (l); _XkbErrData= (d); }
  273. #define    _XkbErrCode2(a,b) ((XID)((((unsigned int)(a))<<24)|((b)&0xffffff)))
  274. #define    _XkbErrCode3(a,b,c)    _XkbErrCode2(a,(((unsigned int)(b))<<16)|(c))
  275. #define    _XkbErrCode4(a,b,c,d) _XkbErrCode3(a,b,((((unsigned int)(c))<<8)|(d)))
  276.  
  277. extern    int    DeviceKeyPress,DeviceKeyRelease;
  278. extern    int    DeviceButtonPress,DeviceButtonRelease;
  279.  
  280. #ifdef XINPUT
  281. #define    _XkbIsPressEvent(t)    (((t)==KeyPress)||((t)==DeviceKeyPress))
  282. #define    _XkbIsReleaseEvent(t)    (((t)==KeyRelease)||((t)==DeviceKeyRelease))
  283. #else
  284. #define    _XkbIsPressEvent(t)    ((t)==KeyPress)
  285. #define    _XkbIsReleaseEvent(t)    ((t)==KeyRelease)
  286. #endif
  287.  
  288. #define    _XkbCoreKeycodeInRange(c,k)    (((k)>=(c)->curKeySyms.minKeyCode)&&\
  289.                      ((k)<=(c)->curKeySyms.maxKeyCode))
  290. #define    _XkbCoreNumKeys(c)    ((c)->curKeySyms.maxKeyCode-\
  291.                  (c)->curKeySyms.minKeyCode+1)
  292.  
  293. #define    XConvertCase(s,l,u)    XkbConvertCase(s,l,u)
  294. #undef    IsKeypadKey
  295. #define    IsKeypadKey(s)        XkbKSIsKeypad(s)
  296.  
  297. #define    Status        int
  298. #define    XPointer    pointer
  299. #define    Display        struct _XDisplay
  300.  
  301. #ifndef True
  302. #define    True    1
  303. #define    False    0
  304. #endif
  305.  
  306. #ifndef PATH_MAX
  307. #ifdef MAXPATHLEN
  308. #define    PATH_MAX MAXPATHLEN
  309. #else
  310. #define    PATH_MAX 1024
  311. #endif
  312. #endif
  313.  
  314. _XFUNCPROTOBEGIN
  315.  
  316. extern void XkbUseMsg(
  317.     void
  318. );
  319.  
  320. extern int XkbProcessArguments(
  321.     int                /* argc */,
  322.     char **            /* argv */,
  323.     int                /* i */
  324. );
  325.  
  326. extern    void    XkbFreeCompatMap(
  327.     XkbDescPtr            /* xkb */,
  328.     unsigned int        /* which */,
  329.     Bool            /* freeMap */
  330. );
  331.  
  332. extern    void XkbFreeNames(
  333.     XkbDescPtr        /* xkb */,
  334.     unsigned int        /* which */,
  335.     Bool            /* freeMap */
  336. );
  337.  
  338. extern DeviceIntPtr _XkbLookupAnyDevice(
  339.     int            /* id */,
  340.     int *        /* why_rtrn */
  341. );
  342.  
  343. extern DeviceIntPtr _XkbLookupKeyboard(
  344.     int            /* id */,
  345.     int *        /* why_rtrn */
  346. );
  347.  
  348. extern DeviceIntPtr _XkbLookupBellDevice(
  349.     int            /* id */,
  350.     int *        /* why_rtrn */
  351. );
  352.  
  353. extern DeviceIntPtr _XkbLookupLedDevice(
  354.     int            /* id */,
  355.     int *        /* why_rtrn */
  356. );
  357.  
  358. extern DeviceIntPtr _XkbLookupButtonDevice(
  359.     int            /* id */,
  360.     int *        /* why_rtrn */
  361. );
  362.  
  363. extern    XkbDescPtr XkbAllocKeyboard(
  364.     void
  365. );
  366.  
  367. extern    Status XkbAllocClientMap(
  368.     XkbDescPtr        /* xkb */,
  369.     unsigned int        /* which */,
  370.     unsigned int        /* nTypes */
  371. );
  372.  
  373. extern    Status XkbAllocServerMap(
  374.     XkbDescPtr        /* xkb */,
  375.     unsigned int        /* which */,
  376.     unsigned int        /* nNewActions */
  377. );
  378.  
  379. extern    void    XkbFreeClientMap(
  380.     XkbDescPtr            /* xkb */,
  381.     unsigned int        /* what */,
  382.     Bool            /* freeMap */
  383. );
  384.  
  385. extern    void    XkbFreeServerMap(
  386.     XkbDescPtr            /* xkb */,
  387.     unsigned int        /* what */,
  388.     Bool            /* freeMap */
  389. );
  390.  
  391. extern    Status XkbAllocIndicatorMaps(
  392.     XkbDescPtr        /* xkb */
  393. );
  394.  
  395. extern    Status    XkbAllocCompatMap(
  396.     XkbDescPtr            /* xkb */,
  397.     unsigned int        /* which */,
  398.     unsigned int        /* nInterpret */
  399. );
  400.  
  401. extern    Status XkbAllocNames(
  402.     XkbDescPtr        /* xkb */,
  403.     unsigned int        /* which */,
  404.     int            /* nTotalRG */,
  405.     int            /* nTotalAliases */
  406. );
  407.  
  408. extern    Status    XkbAllocControls(
  409.     XkbDescPtr        /* xkb */,
  410.     unsigned int        /* which*/
  411. );
  412.  
  413. extern    Status    XkbCopyKeyType(
  414.     XkbKeyTypePtr        /* from */,
  415.     XkbKeyTypePtr        /* into */
  416. );
  417.  
  418. extern    Status    XkbCopyKeyTypes(
  419.     XkbKeyTypePtr        /* from */,
  420.     XkbKeyTypePtr        /* into */,
  421.     int                /* num_types */
  422. );
  423.  
  424. extern    Status    XkbResizeKeyType(
  425.     XkbDescPtr        /* xkb */,
  426.     int            /* type_ndx */,
  427.     int            /* map_count */,
  428.     Bool        /* want_preserve */,
  429.     int            /* new_num_lvls */
  430. );
  431.  
  432. extern    void    XkbFreeKeyboard(
  433.     XkbDescPtr        /* xkb */,
  434.     unsigned int        /* which */,
  435.     Bool            /* freeDesc */
  436. );
  437.  
  438. extern  void XkbSetActionKeyMods(
  439.     XkbDescPtr        /* xkb */,
  440.     XkbAction *        /* act */,
  441.     unsigned int         /* mods */
  442. );
  443.  
  444. extern Bool XkbCheckActionVMods(
  445.     XkbDescPtr        /* xkb */,
  446.     XkbAction *        /* act */,
  447.     unsigned int         /* changed */
  448. );
  449.  
  450. extern Bool XkbApplyVModChanges(
  451.     XkbSrvInfoPtr    /* xkbi */,
  452.     unsigned int    /* changed */,
  453.     XkbChangesPtr    /* pChanges */,
  454.     unsigned int *    /* needChecksRtrn */,
  455.     XkbEventCausePtr    /* cause */
  456. );
  457.  
  458. extern void XkbApplyVModChangesToAllDevices(
  459.     DeviceIntPtr    /* dev */,
  460.     XkbDescPtr         /* xkb */,
  461.     unsigned int     /* changed */,
  462.     XkbEventCausePtr    /* cause */
  463. );
  464.  
  465. extern    unsigned int XkbMaskForVMask(
  466.     XkbDescPtr        /* xkb */,
  467.     unsigned int    /* vmask */
  468. );
  469.  
  470. extern Bool XkbVirtualModsToReal(
  471.     XkbDescPtr    /* xkb */,
  472.     unsigned int    /* virtua_mask */,
  473.     unsigned int *    /* mask_rtrn */
  474. );
  475.  
  476. extern    unsigned int    XkbAdjustGroup(
  477.     int            /* group */,
  478.     XkbControlsPtr    /* ctrls */
  479. );
  480.  
  481. extern KeySym *XkbResizeKeySyms(
  482.     XkbDescPtr        /* xkb */,
  483.     int         /* key */,
  484.     int         /* needed */
  485. );
  486.  
  487. extern XkbAction *XkbResizeKeyActions(
  488.     XkbDescPtr        /* xkb */,
  489.     int         /* key */,
  490.     int         /* needed */
  491. );
  492.  
  493. extern void XkbUpdateKeyTypesFromCore(
  494.     DeviceIntPtr    /* pXDev */,
  495.     KeyCode         /* first */,
  496.     CARD8         /* num */,
  497.     XkbChangesPtr    /* pChanges */
  498. );
  499.  
  500. extern    void XkbUpdateDescActions(    
  501.     XkbDescPtr        /* xkb */,
  502.     KeyCode        /* first */,
  503.     CARD8        /* num */,
  504.     XkbChangesPtr    /* changes */
  505. );
  506.  
  507. extern void XkbUpdateActions(
  508.     DeviceIntPtr    /* pXDev */,
  509.     KeyCode         /* first */,
  510.     CARD8         /* num */,
  511.     XkbChangesPtr      /* pChanges */,
  512.     unsigned int *    /* needChecksRtrn */,
  513.     XkbEventCausePtr    /* cause */
  514. );
  515.  
  516. extern void XkbUpdateCoreDescription(
  517.     DeviceIntPtr    /* keybd */,
  518.     Bool        /* resize */
  519. );
  520.  
  521. extern void XkbApplyMappingChange(
  522.     DeviceIntPtr    /* pXDev */,
  523.     CARD8         /* request */,
  524.     KeyCode         /* firstKey */,
  525.     CARD8         /* num */,
  526.     ClientPtr        /* client */
  527. );
  528.  
  529. extern void XkbSetIndicators(
  530.     DeviceIntPtr        /* pXDev */,
  531.     CARD32            /* affect */,
  532.     CARD32            /* values */,
  533.     XkbEventCausePtr        /* cause */
  534. );
  535.  
  536. extern void XkbUpdateIndicators(
  537.     DeviceIntPtr        /* keybd */,
  538.     CARD32             /* changed */,
  539.     Bool            /* check_edevs */,
  540.     XkbChangesPtr        /* pChanges */,
  541.     XkbEventCausePtr        /* cause */
  542. );
  543.  
  544. extern XkbSrvLedInfoPtr XkbAllocSrvLedInfo(
  545.     DeviceIntPtr        /* dev */,
  546.     KbdFeedbackPtr        /* kf */,
  547.     LedFeedbackPtr        /* lf */,
  548.     unsigned int        /* needed_parts */
  549. );
  550.  
  551. extern XkbSrvLedInfoPtr XkbFindSrvLedInfo(
  552.     DeviceIntPtr        /* dev */,
  553.     unsigned int        /* class */,
  554.     unsigned int        /* id */,
  555.     unsigned int        /* needed_parts */
  556. );
  557.  
  558. extern void XkbApplyLedNameChanges(
  559.     DeviceIntPtr        /* dev */,
  560.     XkbSrvLedInfoPtr        /* sli */,
  561.     unsigned int        /* changed_names */,
  562.     xkbExtensionDeviceNotify *    /* ed */,
  563.     XkbChangesPtr        /* changes */,
  564.     XkbEventCausePtr        /* cause */
  565. );
  566.  
  567. extern void XkbApplyLedMapChanges(
  568.     DeviceIntPtr        /* dev */,
  569.     XkbSrvLedInfoPtr        /* sli */,
  570.     unsigned int        /* changed_maps */,
  571.     xkbExtensionDeviceNotify *    /* ed */,
  572.     XkbChangesPtr        /* changes */,
  573.     XkbEventCausePtr        /* cause */
  574. );
  575.  
  576. extern void XkbApplyLedStateChanges(
  577.     DeviceIntPtr        /* dev */,
  578.     XkbSrvLedInfoPtr        /* sli */,
  579.     unsigned int        /* changed_leds */,
  580.     xkbExtensionDeviceNotify *    /* ed */,
  581.     XkbChangesPtr        /* changes */,
  582.     XkbEventCausePtr        /* cause */
  583. );
  584.  
  585. extern void XkbUpdateLedAutoState(
  586.     DeviceIntPtr        /* dev */,
  587.     XkbSrvLedInfoPtr        /* sli */,
  588.     unsigned int        /* maps_to_check */,
  589.     xkbExtensionDeviceNotify *    /* ed */,
  590.     XkbChangesPtr        /* changes */,
  591.     XkbEventCausePtr        /* cause */
  592. );
  593.  
  594. extern void XkbFlushLedEvents(    
  595.     DeviceIntPtr        /* dev */,
  596.     DeviceIntPtr        /* kbd */,
  597.     XkbSrvLedInfoPtr        /* sli */,
  598.     xkbExtensionDeviceNotify *    /* ed */,
  599.     XkbChangesPtr        /* changes */,
  600.     XkbEventCausePtr        /* cause */
  601. );
  602.  
  603. extern void XkbUpdateAllDeviceIndicators(
  604.     XkbChangesPtr        /* changes */,
  605.     XkbEventCausePtr        /* cause */
  606. );
  607.  
  608. extern unsigned int XkbIndicatorsToUpdate(
  609.     DeviceIntPtr        /* dev */,
  610.     unsigned long        /* state_changes */,
  611.     Bool            /* enabled_ctrl_changes */
  612. );
  613.  
  614. extern void XkbComputeDerivedState(
  615.     XkbSrvInfoPtr        /* xkbi */
  616. );
  617.  
  618. extern void XkbCheckSecondaryEffects(
  619.     XkbSrvInfoPtr        /* xkbi */,
  620.     unsigned int        /* which */,
  621.     XkbChangesPtr        /* changes */,
  622.     XkbEventCausePtr        /* cause */
  623. );
  624.  
  625. extern void XkbCheckIndicatorMaps(
  626.     DeviceIntPtr        /* dev */,
  627.     XkbSrvLedInfoPtr        /* sli */,
  628.     unsigned int        /* which */
  629. );
  630.  
  631. extern unsigned int XkbStateChangedFlags(
  632.     XkbStatePtr            /* old */,
  633.     XkbStatePtr            /* new */
  634. );
  635.  
  636. extern    void XkbSendStateNotify(
  637.        DeviceIntPtr    /* kbd */,
  638.        xkbStateNotify *    /* pSN */
  639. );
  640.  
  641. extern    void XkbSendMapNotify(
  642.        DeviceIntPtr    /* kbd */,
  643.        xkbMapNotify *    /* ev */
  644. );
  645.  
  646. extern    int  XkbComputeControlsNotify(
  647.     DeviceIntPtr        /* kbd */,
  648.     XkbControlsPtr        /* old */,
  649.     XkbControlsPtr        /* new */,
  650.     xkbControlsNotify *    /* pCN */,
  651.         Bool            /* forceCtrlProc */
  652. );
  653.  
  654. extern    void XkbSendControlsNotify(
  655.        DeviceIntPtr        /* kbd */,
  656.        xkbControlsNotify *    /* ev */
  657. );
  658.  
  659. extern    void XkbSendCompatMapNotify(
  660.     DeviceIntPtr        /* kbd */,
  661.     xkbCompatMapNotify *    /* ev */
  662. );
  663.  
  664. extern    void XkbSendIndicatorNotify(
  665.        DeviceIntPtr        /* kbd */,
  666.        int            /* xkbType */,
  667.        xkbIndicatorNotify *    /* ev */
  668. );
  669.  
  670. extern    void XkbHandleBell(
  671.        BOOL        /* force */,
  672.        BOOL        /* eventOnly */,
  673.        DeviceIntPtr    /* kbd */,
  674.        CARD8        /* percent */,
  675.        pointer         /* ctrl */,
  676.        CARD8        /* class */,
  677.        Atom        /* name */,
  678.        WindowPtr    /* pWin */,
  679.        ClientPtr    /* pClient */
  680. );
  681.  
  682. extern    void XkbSendAccessXNotify(
  683.        DeviceIntPtr        /* kbd */,
  684.        xkbAccessXNotify *    /* pEv */
  685. );
  686.  
  687. extern    void XkbSendNamesNotify(
  688.        DeviceIntPtr    /* kbd */,
  689.        xkbNamesNotify *    /* ev */
  690. );
  691.  
  692. extern    void XkbSendCompatNotify(
  693.        DeviceIntPtr        /* kbd */,
  694.        xkbCompatMapNotify *    /* ev */
  695. );
  696.  
  697. extern    void XkbSendActionMessage(
  698.        DeviceIntPtr        /* kbd */,
  699.        xkbActionMessage *    /* ev */
  700. );
  701.  
  702. extern    void XkbSendExtensionDeviceNotify(
  703.        DeviceIntPtr            /* kbd */,
  704.        ClientPtr            /* client */,
  705.        xkbExtensionDeviceNotify *    /* ev */
  706. );
  707.  
  708. extern void XkbSendNotification(
  709.     DeviceIntPtr        /* kbd */,
  710.     XkbChangesPtr        /* pChanges */,
  711.     XkbEventCausePtr        /* cause */
  712. );
  713.  
  714. extern void XkbProcessKeyboardEvent(
  715.     struct _xEvent *         /* xE */,
  716.     DeviceIntPtr        /* keybd */,
  717.     int             /* count */
  718. );
  719.  
  720. extern void XkbProcessOtherEvent(
  721.     struct _xEvent *         /* xE */,
  722.     DeviceIntPtr        /* keybd */,
  723.     int             /* count */
  724. );
  725.  
  726. extern void XkbHandleActions(
  727.     DeviceIntPtr        /* dev */,
  728.     DeviceIntPtr        /* kbd */,
  729.     struct _xEvent *         /* xE */,
  730.     int             /* count */
  731. );
  732.  
  733. extern Bool XkbEnableDisableControls(
  734.     XkbSrvInfoPtr    /* xkbi */,
  735.     unsigned long    /* change */,
  736.     unsigned long    /* newValues */,
  737.     XkbChangesPtr    /* changes */,
  738.     XkbEventCausePtr    /* cause */
  739. );
  740.  
  741. extern void AccessXInit(
  742.     DeviceIntPtr        /* dev */
  743. );
  744.  
  745. extern Bool AccessXFilterPressEvent(
  746.     register struct _xEvent *    /* xE */,
  747.     register DeviceIntPtr    /* keybd */,
  748.     int                /* count */
  749. );
  750.  
  751. extern Bool AccessXFilterReleaseEvent(
  752.     register struct _xEvent *    /* xE */,
  753.     register DeviceIntPtr    /* keybd */,
  754.     int                /* count */
  755. );
  756.  
  757. extern void AccessXCancelRepeatKey(
  758.     XkbSrvInfoPtr    /* xkbi */,
  759.     KeyCode        /* key */
  760. );
  761.  
  762. extern void AccessXComputeCurveFactor(
  763.     XkbSrvInfoPtr    /* xkbi */,
  764.     XkbControlsPtr    /* ctrls */
  765. );
  766.  
  767. extern    XkbDeviceLedInfoPtr    XkbAddDeviceLedInfo(
  768.     XkbDeviceInfoPtr    /* devi */,
  769.     unsigned int        /* ledClass */,
  770.     unsigned int        /* ledId */
  771. );
  772.  
  773. extern    XkbDeviceInfoPtr    XkbAllocDeviceInfo(
  774.     unsigned int        /* deviceSpec */,
  775.     unsigned int        /* nButtons */,
  776.     unsigned int        /* szLeds */
  777. );
  778.  
  779. extern    void XkbFreeDeviceInfo(
  780.     XkbDeviceInfoPtr    /* devi */,
  781.     unsigned int        /* which */,
  782.     Bool            /* freeDevI */
  783. );
  784.  
  785. extern Status XkbResizeDeviceButtonActions(
  786.         XkbDeviceInfoPtr        /* devi */,
  787.         unsigned int            /* newTotal */
  788. );
  789.  
  790. extern    XkbInterestPtr XkbFindClientResource(
  791.        DevicePtr    /* inDev */,
  792.        ClientPtr    /* client */
  793. );
  794.  
  795. extern    XkbInterestPtr XkbAddClientResource(
  796.        DevicePtr    /* inDev */,
  797.        ClientPtr    /* client */,
  798.        XID        /* id */
  799. );
  800.  
  801. extern    int XkbRemoveClient(
  802.        DevicePtr    /* inDev */,
  803.        ClientPtr    /* client */
  804. );
  805.  
  806. extern    int XkbRemoveResourceClient(
  807.        DevicePtr    /* inDev */,
  808.        XID        /* id */
  809. );
  810.  
  811. extern int XkbDDXInitDevice(
  812.     DeviceIntPtr        /* dev */
  813. );
  814.  
  815. extern    int XkbDDXAccessXBeep(
  816.     DeviceIntPtr        /* dev */,
  817.     unsigned int    /* what */,
  818.     unsigned int    /* which */
  819. );
  820.  
  821. extern    void XkbDDXKeyClick(
  822.     DeviceIntPtr    /* dev */,
  823.     int            /* keycode */,
  824.     int            /* synthetic */
  825. );
  826.  
  827. extern     int XkbDDXUsesSoftRepeat(
  828.     DeviceIntPtr    /* dev */
  829. );
  830.  
  831. extern    void XkbDDXKeybdCtrlProc(
  832.     DeviceIntPtr    /* dev */,
  833.     KeybdCtrl *    /* ctrl */
  834. );
  835.  
  836. extern void XkbDDXChangeControls(
  837.     DeviceIntPtr    /* dev */,
  838.     XkbControlsPtr     /* old */,
  839.     XkbControlsPtr     /* new */
  840. );
  841.  
  842. extern void XkbDDXUpdateIndicators(
  843.     DeviceIntPtr    /* keybd */,
  844.     CARD32        /* newState */
  845. );
  846.  
  847. extern void XkbDDXUpdateDeviceIndicators(
  848.     DeviceIntPtr        /* dev */,
  849.     XkbSrvLedInfoPtr    /* sli */,
  850.     CARD32            /* newState */
  851. );
  852.  
  853. extern void XkbDDXFakePointerButton(
  854.     int         /* event */,
  855.     int        /* button */
  856. );
  857.  
  858. extern void XkbDDXFakePointerMotion(
  859.      unsigned int    /* flags */,
  860.     int        /* x */,
  861.     int        /* y */
  862. );
  863.  
  864. extern void XkbDDXFakeDeviceButton(
  865.     DeviceIntPtr    /* dev */,
  866.     Bool        /* press */,
  867.     int        /* button */
  868. );
  869.  
  870. extern int XkbDDXTerminateServer(
  871.     DeviceIntPtr    /* dev */,
  872.     KeyCode        /* key */,
  873.     XkbAction *    /* act */
  874. );
  875.  
  876. extern int XkbDDXSwitchScreen(
  877.     DeviceIntPtr    /* dev */,
  878.     KeyCode        /* key */,
  879.     XkbAction *    /* act */
  880. );
  881.  
  882. extern int XkbDDXPrivate(
  883.     DeviceIntPtr    /* dev */,
  884.     KeyCode        /* key */,
  885.     XkbAction *    /* act */
  886. );
  887.  
  888. extern void XkbDisableComputedAutoRepeats(
  889.     DeviceIntPtr     /* pXDev */,
  890.     unsigned int    /* key */
  891. );
  892.  
  893. extern void XkbSetRepeatKeys(
  894.     DeviceIntPtr     /* pXDev */,
  895.     int        /* key */,
  896.     int         /* onoff */
  897. );
  898.  
  899. extern    int XkbLatchModifiers(
  900.     DeviceIntPtr     /* pXDev */,
  901.     CARD8         /* mask */,
  902.     CARD8         /* latches */
  903. );
  904.  
  905. extern    int XkbLatchGroup(
  906.     DeviceIntPtr      /* pXDev */,
  907.     int          /* group */
  908. );
  909.  
  910. extern    void XkbClearAllLatchesAndLocks(
  911.     DeviceIntPtr        /* dev */,
  912.     XkbSrvInfoPtr        /* xkbi */,
  913.     Bool            /* genEv */,
  914.     XkbEventCausePtr    /* cause */
  915. );
  916.  
  917. extern    void    XkbSetRulesDflts(
  918.     char *            /* rulesFile */,
  919.     char *            /* model */,
  920.     char *            /* layout */,
  921.     char *            /* variant */,
  922.     char *            /* options */
  923. );
  924.  
  925. extern    void    XkbInitDevice(
  926.     DeviceIntPtr     /* pXDev */
  927. );
  928.  
  929. extern    Bool    XkbInitKeyboardDeviceStruct(
  930.     DeviceIntPtr         /* pXDev */,
  931.     XkbComponentNamesPtr    /* pNames */,
  932.     KeySymsPtr        /* pSyms */,
  933.     CARD8             /* pMods */[],
  934.     BellProcPtr        /* bellProc */,
  935.     KbdCtrlProcPtr        /* ctrlProc */
  936. );
  937.  
  938. extern    int SProcXkbDispatch(
  939.     ClientPtr        /* client */
  940. );
  941.  
  942. extern XkbGeometryPtr XkbLookupNamedGeometry(
  943.     DeviceIntPtr        /* dev */,
  944.     Atom            /* name */,
  945.     Bool *            /* shouldFree */
  946. );
  947.  
  948. extern char *    _XkbDupString(
  949.     char *            /* str */
  950. );
  951.  
  952. extern void    XkbConvertCase(
  953.     KeySym             /* sym */,
  954.     KeySym *        /* lower */,
  955.     KeySym *        /* upper */
  956. );
  957.  
  958. extern    Status     XkbChangeKeycodeRange(    
  959.     XkbDescPtr        /* xkb */,
  960.     int             /* minKC */,
  961.     int             /* maxKC */,
  962.     XkbChangesPtr        /* changes */
  963. );
  964.  
  965. extern int XkbFinishDeviceInit(
  966.     DeviceIntPtr        /* pXDev */
  967. );
  968.  
  969. extern void XkbFreeSrvLedInfo(
  970.     XkbSrvLedInfoPtr    /* sli */
  971. );
  972.  
  973. extern void XkbFreeInfo(
  974.     XkbSrvInfoPtr        /* xkbi */
  975. );
  976.  
  977. extern Status XkbChangeTypesOfKey(
  978.     XkbDescPtr        /* xkb */,
  979.     int            /* key */,
  980.     int            /* nGroups */,
  981.     unsigned int        /* groups */,
  982.     int *            /* newTypesIn */,
  983.     XkbMapChangesPtr    /* changes */
  984. );
  985.  
  986. extern XkbKeyTypePtr XkbAddKeyType(
  987.     XkbDescPtr        /* xkb */,
  988.     Atom            /* name */,
  989.     int            /* map_count */,
  990.     Bool            /* want_preserve */,
  991.     int            /* num_lvls */
  992. );
  993.  
  994. extern Status XkbInitCanonicalKeyTypes(
  995.     XkbDescPtr        /* xkb */,
  996.     unsigned int        /* which */,
  997.     int            /* keypadVMod */
  998. );
  999.  
  1000. extern int XkbKeyTypesForCoreSymbols(
  1001.     XkbDescPtr        /* xkb */,
  1002.     int            /* map_width */,
  1003.     KeySym *        /* core_syms */,
  1004.     unsigned int        /* protected */,
  1005.     int *            /* types_inout */,
  1006.     KeySym *        /* xkb_syms_rtrn */
  1007. );
  1008.  
  1009. extern Bool XkbApplyCompatMapToKey(
  1010.     XkbDescPtr        /* xkb */,
  1011.     KeyCode            /* key */,
  1012.     XkbChangesPtr        /* changes */
  1013. );
  1014.  
  1015. extern Bool XkbUpdateMapFromCore(
  1016.     XkbDescPtr        /* xkb */,
  1017.     KeyCode            /* first_key */,
  1018.     int            /* num_keys */,
  1019.     int            /* map_width */,
  1020.     KeySym *        /* core_keysyms */,
  1021.     XkbChangesPtr        /* changes */
  1022. );
  1023.  
  1024. extern void XkbFreeControls(
  1025.     XkbDescPtr        /* xkb */,
  1026.     unsigned int        /* which */,
  1027.     Bool            /* freeMap */
  1028. );
  1029.  
  1030. extern void XkbFreeIndicatorMaps(
  1031.     XkbDescPtr        /* xkb */
  1032. );
  1033.  
  1034. extern Bool XkbApplyVirtualModChanges(
  1035.     XkbDescPtr        /* xkb */,
  1036.     unsigned int        /* changed */,
  1037.     XkbChangesPtr        /* changes */
  1038. );
  1039.  
  1040. extern Bool XkbUpdateActionVirtualMods(
  1041.     XkbDescPtr        /* xkb */,
  1042.     XkbAction *        /* act */,
  1043.     unsigned int        /* changed */
  1044. );
  1045.  
  1046. extern void XkbUpdateKeyTypeVirtualMods(
  1047.     XkbDescPtr        /* xkb */,
  1048.     XkbKeyTypePtr        /* type */,
  1049.     unsigned int        /* changed */,
  1050.     XkbChangesPtr        /* changes */
  1051. );
  1052.  
  1053. extern void XkbSendNewKeyboardNotify(
  1054.     DeviceIntPtr        /* kbd */,
  1055.     xkbNewKeyboardNotify *    /* pNKN */
  1056. );
  1057.  
  1058. #ifdef XKBSRV_NEED_FILE_FUNCS
  1059.  
  1060. #include <X11/extensions/XKMformat.h>
  1061. #include <X11/extensions/XKBfile.h>
  1062. #include <X11/extensions/XKBrules.h>
  1063.  
  1064. #define    _XkbListKeymaps        0
  1065. #define    _XkbListKeycodes    1
  1066. #define    _XkbListTypes        2
  1067. #define    _XkbListCompat        3
  1068. #define    _XkbListSymbols        4
  1069. #define    _XkbListGeometry    5
  1070. #define    _XkbListNumComponents    6
  1071.  
  1072. typedef struct _XkbSrvListInfo {
  1073.     int        szPool;
  1074.     int        nPool;
  1075.     char *        pool;
  1076.  
  1077.     int        maxRtrn;
  1078.     int        nTotal;
  1079.  
  1080.     char *        pattern[_XkbListNumComponents];
  1081.     int        nFound[_XkbListNumComponents];
  1082. } XkbSrvListInfoRec,*XkbSrvListInfoPtr;
  1083.  
  1084. char *
  1085. XkbGetRulesDflts(
  1086.     XkbRF_VarDefsPtr    /* defs */
  1087. );
  1088.  
  1089. extern void    XkbSetRulesUsed(
  1090.     XkbRF_VarDefsPtr    /* defs */
  1091. );
  1092.  
  1093.  
  1094. extern    Status    XkbDDXList(
  1095.     DeviceIntPtr        /* dev */,
  1096.     XkbSrvListInfoPtr    /* listing */,
  1097.     ClientPtr        /* client */
  1098. );
  1099.  
  1100. extern    unsigned int XkbDDXLoadKeymapByNames(
  1101.     DeviceIntPtr        /* keybd */,
  1102.     XkbComponentNamesPtr    /* names */,
  1103.     unsigned int        /* want */,
  1104.     unsigned int        /* need */,
  1105.     XkbFileInfoPtr        /* finfoRtrn */,
  1106.     char *            /* keymapNameRtrn */,
  1107.     int             /* keymapNameRtrnLen */
  1108. );
  1109.  
  1110. extern    Bool XkbDDXNamesFromRules(
  1111.     DeviceIntPtr        /* keybd */,
  1112.     char *            /* rules */,
  1113.     XkbRF_VarDefsPtr    /* defs */,
  1114.     XkbComponentNamesPtr    /* names */
  1115. );
  1116.  
  1117. extern    FILE *XkbDDXOpenConfigFile(
  1118.     char *    /* mapName */,
  1119.     char *    /* fileNameRtrn */,
  1120.     int    /* fileNameRtrnLen */
  1121. );
  1122.  
  1123. extern    Bool XkbDDXApplyConfig(
  1124.     XPointer    /* cfg_in */,
  1125.     XkbSrvInfoPtr    /* xkbi */
  1126. );
  1127.  
  1128. extern XPointer XkbDDXPreloadConfig(
  1129.     char **            /* rulesFileRtrn */,
  1130.     XkbRF_VarDefsPtr    /* defs */,
  1131.     XkbComponentNamesPtr    /* names */,
  1132.     DeviceIntPtr        /* dev */
  1133. );
  1134.  
  1135. extern    int _XkbStrCaseCmp(
  1136.     char *            /* str1 */,
  1137.     char *            /* str2 */
  1138. );
  1139.  
  1140. #endif /* XKBSRV_NEED_FILE_FUNCS */
  1141.  
  1142.  
  1143. _XFUNCPROTOEND
  1144.  
  1145. #define    XkbAtomGetString(d,s)    NameForAtom(s)
  1146.  
  1147. #endif /* _XKBSRV_H_ */
  1148.  
  1149.  
  1150.